//package com.xunji.xunji.module.trace.util;
//
//import android.app.Activity;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.graphics.Bitmap;
//import android.net.Uri;
//import android.os.Environment;
//import android.provider.MediaStore;
//import android.support.v7.app.AlertDialog;
//
//import com.huanxiao.util.ToastHelper;
//
//import java.io.File;
//import java.io.IOException;
//
//import rx.Observable;
//import rx.Subscriber;
//import rx.android.schedulers.AndroidSchedulers;
//import rx.functions.Func1;
//import rx.schedulers.Schedulers;
//
///**
// * Created by Paul
// * Name:黄浦
// * Email:hpdroid@yahoo.com
// * Date: 16/6/9
// */
//public class PhotoHelper {
//    public static final int REQUEST_CODE_CAMERA = 1001;
//    public static final int REQUEST_CODE_PHOTO = 1002;
//    public static final int REQUEST_CODE_CROP = 1003;//启动裁剪编辑
////    public static final String TEMP_PHOTO_NAME = "temp_photo.jpg";
//    private Activity activity;
//    private OnPhotoListener onPhotoListener;
//    private Bitmap photoBitmap;//保存的bitmap
//    private boolean isNeedCrop = true;//是否需要裁剪
//    private AlertDialog selectDialog;
//    private String tempPhotoName;
//    public PhotoHelper(Activity activity, String photoName) {
//        this.activity = activity;
//        this.tempPhotoName = photoName;
//        initDialog();
//    }
//
//    public void setNeedCrop(boolean isNeedCrop) {
//        this.isNeedCrop = isNeedCrop;
//    }
//
//    public void setOnPhotoListener(OnPhotoListener onPhotoListener) {
//        this.onPhotoListener = onPhotoListener;
//    }
//
//    public void startAlbum() {
//        String status = Environment.getExternalStorageState();
//        if (status.equals(Environment.MEDIA_MOUNTED)) {
//            Intent intent = new Intent(Intent.ACTION_PICK, null);
//            intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
//                    "image/*");
//            activity.startActivityForResult(intent, REQUEST_CODE_PHOTO);
//        } else {
//            ToastHelper.showMessage("没有发现存储卡,打开相机失败!");
//            // 没有SD卡;
//        }
//
//    }
//
//
//    private void startCamera() {
//        try {
//            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//            Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg"));
//            intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//            activity.startActivityForResult(intent, REQUEST_CODE_CAMERA);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//
//
//
//    private void startCrop(Uri tempPicUri) {
//        Intent intent = new Intent();
//        intent.setAction("com.android.camera.action.CROP");
//        intent.setDataAndType(tempPicUri, "image/*");
//        intent.putExtra("crop", "true");
//        intent.putExtra("return-data", true);
//        activity.startActivityForResult(intent, REQUEST_CODE_CROP);
//    }
//
//    public void process(int requestCode, int resultCode, Intent data) throws IOException {
//        if (resultCode != Activity.RESULT_OK) {
//            return;
//        }
//        switch (requestCode) {
//            case REQUEST_CODE_CAMERA:
//                File file = new File(Environment.getExternalStorageDirectory(), "temp.jpg");
//                Uri tempPicUri = Uri.fromFile(file);
//                startCrop(tempPicUri);
//
//                if (isNeedCrop) {
//                    startCrop(tempPicUri);
//                } else {
//                    photoBitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), tempPicUri);
//                    onPhotoListener.onFinish(photoBitmap, file);
//
//                }
//                break;
//            case REQUEST_CODE_PHOTO:
//                if (data == null) {
//                    return;
//                }
//                Uri photoUri = data.getData();
//                if (isNeedCrop) {
//                    startCrop(photoUri);
//                } else {
//                    photoBitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), photoUri);
//                    File photoFile = new File(AppConfig.getPath(activity, photoUri));
//                    onPhotoListener.onFinish(photoBitmap, photoFile);
//                }
//                break;
//            case REQUEST_CODE_CROP:
//                //if return the bitmap
//                photoBitmap = data.getParcelableExtra("data");
//                if (photoBitmap == null) {
//                    Uri uri = data.getData();
//                    photoBitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), uri);
//                }
//                if (photoBitmap == null) {
//                    return;
//                }
//                Observable.just(AppConfig.getLocalImagePath() + tempPhotoName)
//                        .observeOn(Schedulers.io())
//                        .map(new Func1<String, File>() {
//                            @Override
//                            public File call(String s) {
//                                return FileHelper.saveBitmapToFile(photoBitmap, s);
//                            }
//                        })
//                        .subscribeOn(AndroidSchedulers.mainThread())
//                        .subscribe(new Subscriber<File>() {
//                            @Override
//                            public void onCompleted() {
//
//                            }
//
//                            @Override
//                            public void onError(Throwable e) {
//
//                            }
//
//                            @Override
//                            public void onNext(File file) {
//                                onPhotoListener.onFinish(photoBitmap, file);
//                            }
//                        });
//
//                break;
//        }
//    }
//
//    private void initDialog() {
//        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
//        builder.setItems(new String[]{"拍照", "相册"}, new DialogInterface.OnClickListener() {
//            @Override
//            public void onClick(DialogInterface dialog, int which) {
//                switch (which) {
//                    case 0:
//                        startCamera();
//                        break;
//                    case 1:
//                        startAlbum();
//                        break;
//                }
//                dialog.dismiss();
//            }
//        });
//        selectDialog = builder.create();
//
//    }
//
//    public void showSelectDialog() {
//        selectDialog.show();
//    }
//
//    public interface OnPhotoListener {
//
//        void onFinish(Bitmap bitmap, File file);
//    }
//}
